package cn.lycode.system.service;

import cn.lycode.common.core.domain.model.SelectIdsDTO;
import cn.lycode.system.domain.dto.sysdept.SysDeptAddDTO;
import cn.lycode.system.domain.dto.sysdept.SysDeptUpDTO;
import cn.lycode.system.domain.vo.DeptTreeVO;
import cn.lycode.system.domain.vo.SysDeptVO;

import java.util.List;

/**
 * @Title: SysDeptService
 * @Author lyg
 * @Date 2024/8/2 11:03
 * @description: 部门服务
 */
public interface SysDeptService {

    List<SysDeptVO> list();

    List<DeptTreeVO>  getDeptTree(Boolean needSetTotal);

    List<DeptTreeVO> getDeptTreeWithAdditionalNodes();

    int add(SysDeptAddDTO dto);

    int update(SysDeptUpDTO dto);

    SysDeptVO info(Long deptId);

    boolean checkDeptExistUser(SelectIdsDTO dto);

    int remove(SelectIdsDTO dto);

    boolean hasChildByDeptIds(SelectIdsDTO dto);

}
